﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EnvDTE;

namespace MVC4WPF.Automation.Data
{
    /// <summary>
    /// Summary class that holds a contracts information. This is a generic info class that can hold all contract types for MVC4WPF
    /// </summary>
    [Serializable()]
    public class ContractType
    {
        /// <summary>
        /// The name of the contract
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// The namespace of the contract
        /// </summary>
        public string Namespace { get; set; }

        /// <summary>
        /// The name of the contract with namespace and name included.
        /// </summary>
        public string FullName { get; set; }

        /// <summary>
        /// Is stored as a type
        /// </summary>
        public bool IsType { get; set; }

        /// <summary>
        /// The implementation type for the contract
        /// </summary>
        public Type TypeForContract { get; set; }

        /// <summary>
        /// The raw code interface for the contract. This is used only when the interface has not been compiled into the assembly yet.
        /// </summary>
        public CodeInterface RawInterface { get; set; }
    }
}
